package com.sdj.quick.web.dto;

import java.io.Serializable;
import java.util.Date;

import com.sdj.quick.web.annotation.Signature;


/**
 * 快捷支付参数对象
 * 
 * @author Administrator
 *
 */
public class QuickPaymentDto extends BaseObject {

	/** 业务类型(必选)固定值：agentCmbcQuickPay **/
	@Signature(required = true, desc = "业务类型")
	private String serviceType = "agentCmbcQuickPay";
	/** 商家号(必选)商户签约时，盛迪嘉支付平台分配的唯一商家号 **/
	@Signature(required = true, desc = "商家号")
	private String payeeId;
	/** 参数编码字符集(必选)取值：UTF-8、GBK、GB2312，默认值：UTF-8 **/
	@Signature(required = true, desc = "参数编码字符集")
	private String inputCharset = "UTF-8";
	/**
	 * 服务器异步通知地址[必选(不参与签名)]支付成功后，盛迪嘉支付 平台会主动通知商家系统，商家系统必须指定接收通知的地址
	 */
	@Signature(required = false, desc = "服务器异步通知地址")
	private String notifyUrl;
	/** 客户端IP(可选)用户创建交易时，该用户当前所使用机器的IP **/
	private String clientIp;
	/** 接口版本(必选)接口版本，固定值：V1.0 **/
	@Signature(required = true, desc = "接口版本")
	private String interfaceVersion = "V1.0";
	/** 签名方式(必选)默认值：MD5，目前仅支持MD5 **/
	@Signature(required = false, desc = "签名方式")
	private String signType = "MD5";
	/** 签名(必选)[必选参数经过加密后赋值给这个属性]签名数据 **/
	// @Signature(required = false, desc = "签名")
	private String sign;
	/** 加密数据(必选)加密数据，具体请见加密规则 **/
	// @Signature(required = true, desc = "加密数据")
	private String signature;
	/** 商户网站唯一订单号(必选)商户系统订单号，由商户系统保证唯一性，最长64位字母、数字组成 **/
	@Signature(required = true, desc = "订单号")
	private String orderNo;
	/** 商户订单时间(可选)商户订单时间，格式：yyyy-MM-dd HH:mm:ss **/
	private Date orderTime;
	/** 商户订单总金额(必选)该笔订单的总金额，以元为单位，精确到小数点后两位 **/
	@Signature(required = true, desc = "商户订单总金额")
	private String payAmount;
	/** 银行代码(必选)参见B2C银行代码对照表 **/
	@Signature(required = false, desc = "银行代码")
	private String bankCode;
	/** 银行卡号(必选)消费者的银行卡编号 **/
	@Signature(required = true, desc = "银行卡号")
	private String payerAcc;
	/** 卡号集合，用于页面显示 **/
	private String cardNo;
	/** 姓名(必选)消费者的真实姓名 **/
	@Signature(required = false, desc = "消费者的真实姓名")
	private String payerName;
	/** 行政区域编码(可选)银行卡所属行政区域编码，金额5万或以上必填(具体参数见 行政区域代码对照表) **/
	private String provNo;
	/** 身份证(必选)消费者的身份证号 **/
	@Signature(required = true, desc = "消费者的身份证号")
	private String certNo;
	/** 商品名称(可选)商品名称，不超过100个字符 **/
	private String productName;
	/** 商品展示URL(可选)商品展示地址 **/
	private String showUrl;
	/** 商品编号(可选)商品编号，不超过60个字符 **/
	private String productCode;
	/** 商品数量(可选)商品数量 **/
	private String productNum;
	/** 商品描述(可选)商品描述，不超过300个字符 **/
	private String productDesc;
	/** 公用业务扩展(可选)参数格式：参数名1^参数值|参数名2^参数值 **/
	private String extendParam;
	/** 手机号码(必选)认证手机号码 **/
	@Signature(required = false, desc = "手机号码")
	private String phone;
	/**用于存放截取的手机号**/
	private String mobile;
	/** 短信验证码(必选)短信验证码 **/
	@Signature(required = false, desc = "短信验证码 ")
	private String smsCode;
	/** cvn2(信用卡必输)表示卡背面后3位数字 **/
	private String cvn2;
	/** 有效期 (仅用于信用卡)表示卡的有效期，格式为MMYY（月月年年），如0715 **/
	private String validDate;
	// 这个特殊处理，不用于存放在map里，到最后加密处理
	@Signature(required = false, desc = "商家支付密钥key ")
	private String merKey;
	/** 微信openId **/
	private String openId;
	/**卡类型0:借记卡，1：信用卡**/
	private String cardType;
	
	private String json;

	public String getServiceType() {
		return serviceType;
	}

	public void setServiceType(String serviceType) {
		this.serviceType = serviceType;
	}

	public String getPayeeId() {
		return payeeId;
	}

	public void setPayeeId(String payeeId) {
		this.payeeId = payeeId;
	}

	public String getInputCharset() {
		return inputCharset;
	}

	public void setInputCharset(String inputCharset) {
		this.inputCharset = inputCharset;
	}

	public String getNotifyUrl() {
		return notifyUrl;
	}

	public void setNotifyUrl(String notifyUrl) {
		this.notifyUrl = notifyUrl;
	}

	public String getClientIp() {
		return clientIp;
	}

	public void setClientIp(String clientIp) {
		this.clientIp = clientIp;
	}

	public String getInterfaceVersion() {
		return interfaceVersion;
	}

	public void setInterfaceVersion(String interfaceVersion) {
		this.interfaceVersion = interfaceVersion;
	}

	public String getSignType() {
		return signType;
	}

	public void setSignType(String signType) {
		this.signType = signType;
	}

	public String getSign() {
		return sign;
	}

	public void setSign(String sign) {
		this.sign = sign;
	}

	public String getSignature() {
		return signature;
	}

	public void setSignature(String signature) {
		this.signature = signature;
	}

	public String getOrderNo() {
		return orderNo;
	}

	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}

	public Date getOrderTime() {
		return orderTime;
	}

	public void setOrderTime(Date orderTime) {
		this.orderTime = orderTime;
	}

	public String getPayAmount() {
		return payAmount;
	}

	public void setPayAmount(String payAmount) {
		this.payAmount = payAmount;
	}

	public String getBankCode() {
		return bankCode;
	}

	public void setBankCode(String bankCode) {
		this.bankCode = bankCode;
	}

	public String getPayerAcc() {
		return payerAcc;
	}

	public void setPayerAcc(String payerAcc) {
		this.payerAcc = payerAcc;
	}

	public String getCardNo() {
		return cardNo;
	}

	public void setCardNo(String cardNo) {
		this.cardNo = cardNo;
	}

	public String getPayerName() {
		return payerName;
	}

	public void setPayerName(String payerName) {
		this.payerName = payerName;
	}

	public String getProvNo() {
		return provNo;
	}

	public void setProvNo(String provNo) {
		this.provNo = provNo;
	}

	public String getCertNo() {
		return certNo;
	}

	public void setCertNo(String certNo) {
		this.certNo = certNo;
	}

	public String getProductName() {
		return productName;
	}

	public void setProductName(String productName) {
		this.productName = productName;
	}

	public String getShowUrl() {
		return showUrl;
	}

	public void setShowUrl(String showUrl) {
		this.showUrl = showUrl;
	}

	public String getProductCode() {
		return productCode;
	}

	public void setProductCode(String productCode) {
		this.productCode = productCode;
	}

	public String getProductNum() {
		return productNum;
	}

	public void setProductNum(String productNum) {
		this.productNum = productNum;
	}

	public String getProductDesc() {
		return productDesc;
	}

	public void setProductDesc(String productDesc) {
		this.productDesc = productDesc;
	}

	public String getExtendParam() {
		return extendParam;
	}

	public void setExtendParam(String extendParam) {
		this.extendParam = extendParam;
	}

	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}
	
	public String getMobile() {
		return mobile;
	}

	public void setMobile(String mobile) {
		this.mobile = mobile;
	}

	public String getSmsCode() {
		return smsCode;
	}

	public void setSmsCode(String smsCode) {
		this.smsCode = smsCode;
	}
	
	public String getCvn2() {
		return cvn2;
	}

	public void setCvn2(String cvn2) {
		this.cvn2 = cvn2;
	}

	public String getValidDate() {
		return validDate;
	}

	public void setValidDate(String validDate) {
		this.validDate = validDate;
	}

	public String getMerKey() {
		return merKey;
	}

	public void setMerKey(String merKey) {
		this.merKey = merKey;
	}

	public String getOpenId() {
		return openId;
	}

	public void setOpenId(String openId) {
		this.openId = openId;
	}

	public String getCardType() {
		return cardType;
	}

	public void setCardType(String cardType) {
		this.cardType = cardType;
	}

	public String getJson() {
		return json;
	}

	public void setJson(String json) {
		this.json = json;
	}

}
